Computer systems and other types of consumer electronic devices are commonly linked to each other and to peripheral devices using a myriad of different types of cables and connectors. As these devices grow in number and variety, their cables and connectors can often become quite cumbersome to work with. Accordingly, efforts are underway to develop technologies allowing hardware connections to be replaced with wireless ones.
One such technology is the Bluetooth technology. Bluetooth is the code name for a technology specification for short-range radio links that will allow the many proprietary cables that connect devices to one another to be replaced with short-range radio links.
The Bluetooth technology is based on a high-performance, yet low-cost, integrated radio transceiver. For instance, Bluetooth transceivers built into both a cellular telephone and a laptop computer system would replace the cables used today to connect a laptop to a cellular telephone. Printers, personal digital assistants (palmtop computer systems, hand-held devices and the like), desktop computer systems, fax machines, keyboards, joysticks and virtually any other digital device can be part of a Bluetooth system. Bluetooth radio technology can also provide a universal bridge to existing data networks and a mechanism to form small private ad hoc groupings (“scatternets” or “piconets”) of connected devices away from fixed network infrastructures.
The Bluetooth technology allows Bluetooth devices to “discover” other Bluetooth devices that are within range and then connect with those devices, either automatically or at a user's discretion. The Generic Access Profile (GAP) of the Bluetooth specification (Section 6 of “Specification of the Bluetooth System, Core,” version 1.0B, dated Dec. 1, 1999, herein incorporated by reference as background) describes the processes by which Bluetooth devices discover each other. The device discovery process has two primary steps: an inquiry step (described in Sections 6.1 and 6.2 of the Bluetooth specification), and a name discovery step (described in Section 6.3 of the Bluetooth specification). In the inquiry step, the Bluetooth devices make their presence known to each other and exchange attributes (e.g., addresses) needed to further the connection process. In the name discovery step, user-friendly names are exchanged to help a user identify Bluetooth devices that are in the environment. The inquiry and discovery steps are described in further detail below.
Prior Art FIG. 1 is a data flow diagram 10 illustrating the GAP process used by one Bluetooth device (initiator device 20) to discover the name of another Bluetooth device (e.g., responding device 30). First, initiator device 20 sends (broadcasts) an inquiry 40 over the nominal range of a typical Bluetooth device (e.g., approximately 10 meters). When initiator device 20 initiates an inquiry 40, it typically remains in the inquiry state for 10.24 seconds (this time is programmable, but the Bluetooth specification recommends 10.24 seconds).
In order to receive and respond to inquiry 40, responding devices 30 and 32 must be “discoverable” (e.g., the devices must be scanning for inquiry messages). Responding devices 30 and 32 send inquiry responses 42a and 42b, respectively, to initiator device 20 in response to inquiry 40. Inquiry responses 42a and 42b provide the Bluetooth device addresses (a numerical address or a device access code) for responding devices 30 and 32, and optionally provide additional information such as the clock, class of device and page scan mode. Significantly, inquiry responses 42a and 42b do not provide a name (or user-friendly name) for responding devices 30 and 32. The user-friendly name can be up to 248 characters long and is not provided in order to reduce the length of the inquiry responses.
Initiator device 20 can therefore receive an inquiry response from multiple Bluetooth devices (e.g., responding devices 30 and 32), providing each devices' numerical address at least. Generally, a user will not be able to identify one type of responding device over another based only on the device's numerical address. For example, there may be two printers in proximity, and the user generally will not be able to tell which printer to connect with based on the numerical address. However, “user-friendly names” can be used to identify each printer's location and features, allowing the user to make a selection of one over the other. Therefore, initiator device 20 needs to discover and display the user-friendly name for each of the devices that responded, so that the user can select the appropriate device with which to connect.
To accomplish this, initiator device 20 must connect one device at a time to each of the responding devices 30 and 32 in order to request a user-friendly name. Accordingly, initiator device 20 sends pages 44a and 44b to each device that responded to inquiry 40. In response to the pages 44a and 44b, responding devices 30 and 32 send page responses 46a and 46b, respectively.
Next, initiator device 20 will send name requests 48a and 48b to responding devices 30 and 32, respectively. In response to name request 48a, responding device 30 sends name request response 50a to initiator device 20. Similarly, in response to name request 48b, responding device 32 sends name request response 50b to initiator device 20. Name request responses 50a and 50b provide the user-friendly names for responding devices 30 and 32, respectively. The user-friendly names are displayed to the user, who can then select one or more of the responding devices with which to connect.
There are a number of disadvantages associated with the Bluetooth name discovery process described above. One disadvantage is that the process, with up to six messages being exchanged between pair of initiator and responding devices, can take a relatively long time to complete.
Another disadvantage is that sending and responding to multiple pages 44a, 44b and 44c and multiple name requests 48a, 48b and 48c can consume the limited power resources that are typically available to initiator device 20 and responding device 30. For example, personal digital assistants (PDAs), cell phones, and other mobile devices are limited in size and weight, and therefore these types of devices typically use smaller and lighter batteries of limited capacity. Each page 44a and 44b consumes the limited power available for initiator device 20, and each page response 46a and 46c consumes the limited power available for responding device 30. Similarly, each name request 48a and 48b further consumes the limited power available for initiator device 20, and each name request response 50a and 50c further consumes the limited power available for responding device 30. Consequently, more frequent battery charges may be needed, inconveniencing the user.
Yet another disadvantage to the Bluetooth name discovery process is that two Bluetooth initiator devices (such as initiator device 20 and initiator device 22) may each issue a page or name request (e.g., pages 44a and 44c and/or name requests 48a and 48c) to responding device 30 at the same time. Responding device 30 can only respond to one of the initiator devices at a time, and will ignore the other; for example, responding device 30 will respond to initiator device 20 and ignore the page 44c from initiator device 22. As a result, page 44c from initiator device 22 can time out before initiator device 22 receives a response from responding device 30. Consequently, the initiator device 22 must retransmit page 44c until a page response 46c is received.
A similar situation occurs when responding device 30 moves out of range of initiator device 20 between the time at which inquiry response 42 is received by initiator device 20 and the time at which initiator device 20 sends page 44a or name request 48a. For example, responding device 30 may be a PDA, a cell phone, or other mobile device. The user carrying responding device 30 may have been within range of initiator device 20 when inquiry 40 was sent, and then moved out of range before name request 48a was sent. Under these circumstances, the name request 48a will time out, and initiator device 20 may repeatedly retransmit name request 48a until the device recognizes that responding device 30 is no longer in range.
Thus, the prior art name discovery process described by the Bluetooth specification can be unpredictable and inefficient, increasing the time needed to identify and connect with Bluetooth devices. These problems are exacerbated as Bluetooth devices grow in number and popularity. With more Bluetooth devices in use, a responding device 30 is more likely to receive numerous pages (e.g., 44a-44h) and or name requests (not shown) from multiple initiator devices within range. It is also more likely that the pages 44a-44h and/or name requests will collide, and that many of these pages and/or name requests will be ignored and have to be retransmitted. It is also more likely that, as the number of Bluetooth devices increase, pages and/or name requests will be sent to a responding device that was only temporarily in range of an initiator device. When no response is received, these pages and/or name requests will generally have to be retransmitted.
Thus, with more Bluetooth devices in use, the prior art name discovery process can become more inefficient and unpredictable, generating an increasing number of messages as repeated attempts are made to complete the process. In addition, the increase in messages—the increase in pages and name requests, the increase in retransmitted pages and name requests, and the corresponding increase in the number of responses to pages and name requests—will further increase the burden on the limited power resources of both initiator and responding Bluetooth devices.
Finding a solution to the problems described above is made more complex because the solution must be substantially compliant with the Bluetooth specification. That is, many Bluetooth devices are being designed and manufactured according to the Bluetooth specification. Consequently, a solution that relies on a significant deviation from the Bluetooth specification will create new problems, such as incompatibility between newer Bluetooth devices and legacy Bluetooth devices. An aim of the Bluetooth specification is to provide a level of standardization across all Bluetooth devices, and a substantial deviation from the specification would be contrary to that aim. Accordingly, any solution to the prior art problems described above should be satisfactorily consistent with the Bluetooth specification, or it should be a solution that can be incorporated into legacy Bluetooth devices.